#include "stm32f10x.h"
#include "Delay.h"
#include "OLED.h"
#include "Serial.h"
#include "key.h"
//串口收发HEX数据包
uint8_t RxData;
uint8_t Keynum;
int main(void) {
    OLED_Init();    // 初始化OLED
    Serial_Init();  // 初始化串口
    Key_Init();
		
		OLED_ShowString(1,1,"Serial_TxPacket:");
		OLED_ShowString(3,1,"Serial_RxPacket:");
		
	//在最终的程序中，按一下按键，变换一下数据，发送到串口助手上
	//先对发送缓存赋一个初始值
    //先填充发送缓存区数组
	  Serial_TxPacket[0]=0x01;
		Serial_TxPacket[1]=0x02;
		Serial_TxPacket[2]=0x03;
		Serial_TxPacket[3]=0x04;
		
    while (1) {
			Keynum=Key_GetNum();
			if(Keynum==1){
					  Serial_TxPacket[0]++;
						Serial_TxPacket[1]++;
						Serial_TxPacket[2]++;
						Serial_TxPacket[3]++;

						Serial_SendPakcet();
				
						OLED_ShowHexNum(2,1,Serial_TxPacket[0],2);
						OLED_ShowHexNum(2,4,Serial_TxPacket[1],2);
						OLED_ShowHexNum(2,7,Serial_TxPacket[2],2);
						OLED_ShowHexNum(2,10,Serial_TxPacket[3],2);
			}
        //通过函数读取RxFlag来获取数据包
			if(Serial_GetSerial_Flag()==1){
				OLED_ShowHexNum(4,1,Serial_RxPacket[0],2);
				OLED_ShowHexNum(4,4,Serial_RxPacket[1],2);
				OLED_ShowHexNum(4,7,Serial_RxPacket[2],2);
				OLED_ShowHexNum(4,10,Serial_RxPacket[3],2);
				//uint8_t Serial_RxPacket[4]是仅要写入又要读入，花费的时间就长了，如果旧的数据还没处理完新的数据就加入则会数据混乱，所以需要在中断函数中的每个数据包读取完再接收一下数据包的地方进行控时（一般的，独立数据收发不影响）
			}
    }
}